package cn.iocoder.yudao.module.member.assets.vo;

import cn.iocoder.yudao.framework.business.basic.enums.EnumCodable;
import cn.iocoder.yudao.framework.validation.Percent;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.PositiveOrZero;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

@Schema(description = "联盟豆概览 Response VO")
@Data
public class AppCryptocurrencyOverviewRespVO {

    @Schema(description = "联盟豆（含收益豆）")
    private BigDecimal cryptocurrency;

    @Schema(description = "未增值的联盟豆")
    private BigDecimal cryptocurrencyOrigin;

    @Schema(description = "增值过的联盟豆（收益豆）")
    private BigDecimal cryptocurrencyIncrement;

    @Schema(description = "增值中的联盟豆（收益池）")
    private BigDecimal cryptocurrencyIncreasing;

    @Schema(description = "冻结中的联盟豆")
    private BigDecimal cryptocurrencyFreezing;

    @Schema(description = "联盟豆兑换规则说明")
    private String cryptocurrencyToMoneyTips;

    @Schema(description = "联盟豆兑换现金百分比，如：80")
    private double cryptocurrencyToMoneyPercent;

    @Schema(description = "转换收益豆规则说明")
    private String cryptocurrencyNotIncrementTips;

    @Schema(description = "联盟豆增值规则说明")
    private String cryptocurrencyIncrementTips;

    @Schema(description = "联盟豆可投入数量的预设值，不能手动输入数量，必须使用预设的数量")
    private List<Integer> cryptocurrencyIncrementPresetAmounts;

    @Schema(description = "联盟豆投入收益池的增值百分比，如：30 表示投入 100 个增长 30 个")
    @Percent
    private double cryptocurrencyIncrementPercent;

    @Schema(description = "联盟豆投入收益池的签到天数，如：30天")
    @PositiveOrZero
    private int cryptocurrencyIncrementDays;

    @Schema(description = "业务类型")
    private List<EnumCodable.ViewObject> bizTypes;

}